FamilyPrimaryElectionV3
One row per futures family, keyed by the family head: CCodeDefinitionV3 (9115) familyHead, @[line]-[venue]-FUT for a
venue's products on a line, or the @X head a product names.
primary is the product MAR counts the family in (a sibling's contract counts as its point value over the
Primary's) and the product a FUT head answers through; CCodeDefinitionV3 (9115) role Primary follows it.
THREE RUNGS, STRICT ORDER (governs). HardCode: declared in code (the common US families, a micro under its
E-mini; a FUT head named after a product, ES under @ES; the Europe loader's table); no edit of this row moves it,
a release does. Election: this row decides, whoever wrote it, until written again. Rule: no row exists, so the
loader elects the standard outright (kind Outright, else Physical, else any; never a TAS contract) with the largest
point value, then contract size, then symbol, writes this row and publishes the family's 9115 rows with roles.
A Rule row follows the rule on later loads; an Election or HardCode row stays as written. rulePrimary is what
the rule elects today: a difference is research, not a change.
STATUS. Elected: primary governs. Dead: the elected product is not in the load; the family has no Primary and
every order on it is refused at MAR arrival (SpdrRejectReason MarNoPrimary) until a new election is written.
None (the SRSE default on a hand-written row) governs and is stamped by the next pass. Pending and Superseded
are reserved: such a row does not govern and the check reports it. A written row relinks its family within the
session; counters accumulated for the day keep the old Primary's contracts until the trade-date roll.
METADATA
| Attribute | Value |
|---|---|
| Topic | 9100-product-def-core |
| MLink Token | Internal |
| Product | SRReference |
| accessType | SELECT |
| MLink Endpoint | MLink-Order |
Table Definition
| Field | Type | Key | Default Value | Comment |
|---|---|---|---|---|
| head_at | enum - AssetType | PRI | 'None' | the family head 9115 familyHead linevenueFUT or X |
| head_ts | enum - TickerSrc | PRI | 'None' | the family head 9115 familyHead linevenueFUT or X |
| head_tk | VARCHAR(12) | PRI | '' | the family head 9115 familyHead linevenueFUT or X |
| primary_at | enum - AssetType | 'None' | the elected Primary product ccode the product refused when Dead | |
| primary_ts | enum - TickerSrc | 'None' | the elected Primary product ccode the product refused when Dead | |
| primary_tk | VARCHAR(12) | '' | the elected Primary product ccode the product refused when Dead | |
| rulePrimary_at | enum - AssetType | 'None' | the product the rule elects today | |
| rulePrimary_ts | enum - TickerSrc | 'None' | the product the rule elects today | |
| rulePrimary_tk | VARCHAR(12) | '' | the product the rule elects today | |
| governs | enum - PrimaryRung | 'None' | HardCode Election Rule the rung that decided primary | |
| status | enum - PrimaryElectionStatus | 'None' | Elected Pending Dead Superseded | |
| electedAt | DATETIME(6) | '1900-01-01 00:00:00.000000' | when primary was last decided MAR sizes the session it falls in against previousPrimary | |
| ruleAt | DATETIME(6) | '1900-01-01 00:00:00.000000' | when rulePrimary last moved | |
| ruleReason | VARCHAR(64) | '' | why rulePrimary last moved first election a new product a point value | |
| rationale | TINYTEXT | '' | a written election says why the loader writes the rule it applied | |
| previousPrimary_at | enum - AssetType | 'None' | the Primary this election replaced what MAR counts in until the roll the loader fills it | |
| previousPrimary_ts | enum - TickerSrc | 'None' | the Primary this election replaced what MAR counts in until the roll the loader fills it | |
| previousPrimary_tk | VARCHAR(12) | '' | the Primary this election replaced what MAR counts in until the roll the loader fills it | |
| timestamp | DATETIME(6) | '1900-01-01 00:00:00.000000' | ||
| v3Source | enum - V3Source | 'None' | Loader the rule elected it Manual written by hand HardCode declared in code |
PRIMARY KEY DEFINITION (Unique)
| Field | Sequence |
|---|---|
| head_tk | 1 |
| head_at | 2 |
| head_ts | 3 |
SELECT TABLE EXAMPLE QUERY
SELECT *
FROM `SRReference`.`MsgFamilyPrimaryElectionV3`
WHERE
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`head_at` = 'NONE'
AND
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`head_ts` = 'NONE'
AND
/* Replace with a VARCHAR(12) */
`head_tk` = 'Example_head_tk';
Doc Columns Query
SELECT * FROM SRReference.doccolumns WHERE TABLE_NAME='FamilyPrimaryElectionV3' ORDER BY ordinal_position ASC;